/*
 * CharacterSkeleton.h
 *
 *  Created on: Jun 14, 2011
 *      Author: sebastien
 */

#ifndef CHARACTERSKELETON_H_
#define CHARACTERSKELETON_H_
#include "Model.h"
#include "../Controller/Controller.h"
#include <list>

typedef struct SkeletonBodyPart
{
	btCollisionObject* shape;
	XnSkeletonJoint joint;
};

class CharacterSkeleton {
public:
    CharacterSkeleton();
    CharacterSkeleton(xn::UserGenerator userGenerator, XnUserID user, BulletConfiguration *bulletConfiguration);
    virtual ~CharacterSkeleton();
    void update();
    void update(xn::UserGenerator userGenerator, XnUserID user);
    std::list<SkeletonBodyPart>* getBody() const;

protected:
	xn::UserGenerator userGenerator;
	XnUserID user;
	btVector3** joints;
	std::list<SkeletonBodyPart>* body;
};


#endif /* CHARACTERSKELETON_H_ */
